package com.opal.modules.costReportForm.config;

import com.opal.modules.costReportForm.service.CostReportService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

@EnableScheduling  //定时器需要开启
@Configuration
@Slf4j
public class CostReportConfig {
    @Autowired
    private CostReportService costReportService;
//    public CostReportConfig(){
//        // 一天的毫秒数
//        long daySpan = 24 * 60 * 60 * 1000;
//        // 规定的每天时间15:33:30运行
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 03:16:00");
//        // 首次运行时间
//        try {
//            Date startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(sdf.format(new Date()));
//            // 如果今天的已经过了 首次运行时间就改为明天
//            if (System.currentTimeMillis() > startTime.getTime()){
//                startTime = new Date(startTime.getTime() + daySpan);
//            }
//            Timer t = new Timer();
//            TimerTask task = new TimerTask() {
//                @Override
//                public void run() {
//                    log.info("-----开始定时任务----");
//                    int i = costReportService.deleteFieldIsNullService();
//                    log.info("定时任务：共删除了"+i+"条【销售组织、公司账套、部门、更新类型、此成本是否含客料、此配方是否韩料、销售类型】有一个为null的数据");
//                }
//            };
//            // 以每24小时执行一次
//            t.schedule(task, startTime, daySpan);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }


//    每隔5秒执行一次：*/5 * * * * ?
//    每隔1分钟执行一次：0 */1 * * * ?
//    每天23点执行一次：0 0 23 * * ?
//    每天12点14分执行一次：0 14 12 * * ?
//    每天凌晨1点执行一次：0 0 1 * * ?
//    每月1号凌晨1点执行一次：0 0 1 1 * ?
//    每月最后一天23点执行一次：0 0 23 L * ?
//    每周星期天凌晨1点实行一次：0 0 1 ? * L
//    在26分、29 分、33 分执行一次：0 26,29,33 * * * ?
//    每天的0点、13 点、18 点、21 点都执行一次：0 0 0,13,18,21 * * ?
   @Scheduled(cron = "0 11 3 * * ?")  //每天凌晨3点11分执行一次
   public void  qingKongTempCostReport(){
        log.info("-----开始定时任务----");
        int i = costReportService.deleteFieldIsNullService();
        log.info("定时任务：共删除了"+i+"条【销售组织、公司账套、部门、更新类型、此成本是否含客料、此配方是否韩料、销售类型】有一个为null的数据");
    }
}

